Databases play an increasingly important role in modern life and business. Businesses have come to use databases in any number of different contexts. Human resource departments use databases to store data describing employees, including, compensation information, address information, etc. Sales and marketing departments use customer relationship management (CRM) databases to store data describing customers including, for example, purchases, product preferences, etc. Information technology (IT) departments use databases for many purposes including, for example, to store data describing computer devices, software applications, etc. Consumers too are becoming increasingly dependent on databases. For example, a typical computer device user may use a media application that maintains a database of available media files, a calendar or e-mail application that maintains a database of personal and/or business contacts, a financial application that maintains a database of financial records, and others.
A database schema is a description of the organization of in the database. Many schemas define sets of related database objects including, tables, indices, etc. From time-to-time, it is desirable to migrate the data stored at a database to another database organized according to a different schema. For example, database migrations are often performed when upgrading to a different type or version of a database, when merging redundant databases or systems, etc. Database migrations between databases with different schemas often require considerable time and effort from human programmers and can consume considerable computing resources.